#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
//int main()
//{
//	int x = 0;
//	int *a = &x;
//	return 0;
//}

//int Fibonacci(int n)
//{
//	int f1 = 1;
//	int f2 = 1;
//	int f3 = f1 + f2;//2
//	if (n <= 2)
//	{
//		return 1;
//	}
//	else
//	{
//		while (n>3)
//		{
//			f1 = f2;//1
//			f2 = f3;//2
//			f3 = f1 + f2;//3
//			n--;
//		}
//	}
//	return f3;
//}
//int main()
//{
//	int n = 0;
//	while (~scanf("%d", &n))
//	{
//		int sum = Fibonacci(n);
//		printf("%d\n", sum);
//	}
//	return 0;
//}

//int main()
//{
//	double n = 0;
//	double m = 0;
//	while (~scanf("%lf%lf", &n, &m))
//	{
//		double sum = 0;
//		for (int i = 0; i < m; i++)
//		{
//			sum = sum + n;
//			n = sqrt(n);
//		}
//		printf("%.2lf\n", sum);
//	}
//	return 0;
//}

//int main()
//{
//	float a[3] = { 1.5, 2.5, 3.5 };
//	float *pa = a;
//	*(pa++) *= 3;
//	printf("%f\n", *pa);
//	return 0;
//}

//int* masterMind(char* solution, char* guess, int* returnSize){
//	int *answer = (int *)calloc(sizeof(int), 4);
//	*returnSize = 2;
//	for (int i = 0; i<4; i++){
//		if (solution[i] == guess[i]){
//			answer[0]++;
//		}
//	}
//	for (int i = 0; i<4; i++){
//		for (int j = 0; j<4; j++){
//			if (solution[i] == guess[j]){
//				answer[1]++;
//				guess[j] = 'X';
//				break;
//			}
//		}
//	}
//	answer[1] -= answer[0];
//	return answer;
//}

//int compare(int *a, int *b)
//{
//	return *a - *b;
//}
//int missingNumber(int* nums, int numsSize){
//	qsort(nums, numsSize, sizeof(int), compare);
//	for (int i = 0; i<numsSize; i++)
//	{
//		if (nums[i + 1] - nums[i] != 1)
//		{
//			return nums[i] + 1;
//		}
//	}
//}
//int main()
//{
//	int arr[] = { 9, 6, 4, 2, 3, 5, 7, 0, 1 };
//	int len = sizeof(arr) / sizeof(arr[0]);
//	int tmp = missingNumber(arr, len);
//	printf("%d\n", tmp);
//	return 0;
//}

int compare(int *a, int *b)
{
	return *a - *b;
}
int* singleNumbers(int* nums, int numsSize, int* returnSize){
	if (numsSize == 1)
	{
		*returnSize = 1;
		return nums;
	}
	*returnSize = 2;
	int *tmp = (int *)malloc(sizeof(int)* 2);
	int m = 0;
	qsort(nums, numsSize, sizeof(int), compare);
	for (int i = 0; i<numsSize; i++)
	{
		if (i == numsSize&&nums[i] != nums[i - 1])
		{
			tmp[m] = nums[i];
			m++;
		}
		if (i == 0 && nums[i] != nums[i + 1])
		{
			tmp[m] = nums[i];
			m++;
		}
		else if (nums[i] != nums[i - 1] && nums[i] != nums[i + 1])
		{
			tmp[m] = nums[i];
			m++;
		}
	}
	*returnSize = m;
	return tmp;
}